按“API Level”分类对于网页程序而言,可以理解为——将数据输出到不同的div。
很多SDK是与 API Level 相关的,具有“sdk:api-level”属性,它是一个整数,值为2(Android 1.1)至14(Android 4.0)。我们可以用数组来管理——
var arrAPI = new Array(); // API Level数组。用于管理给出了API Level的。
除了与 API Level 相关的SDK外,还有一些文件是与SDK无关的,它们没有“sdk:api-level”属性。怎么处理呢?按xml标签名进行分类似乎比较好。因标签名是一个字符串,应使用Object来管理集合——
var arrTag = new Object(); // tag集合。用于管理没有给出API Level的。
然后在页面中添加两个div,决定数据所显示的位置——
再编写一个getMyDiv函数,根据API Level和标签,返回所对应的div——
// 返回图层对象,根据API Level和tag function getMyDiv(sapilevel, stag) { var div = null; var l = parseInt(sapilevel); if ( isNaN(l) || l<0 ) { // 无API Level,根据tag div = arrTag[stag]; if (null==div) { div = document.createElement("div"); div.className = "div_border"; var divTag = getRef("divTag"); divTag.appendChild(div); divTag.appendChild(document.createElement("br")); // 空一行 arrTag[stag] = div; } } else { // 根据API Level div = arrAPI[l]; if (null==div) { div = document.createElement("div"); div.className = "div_border"; var divAPI = getRef("divAPI"); divAPI.appendChild(div); divAPI.appendChild(document.createElement("br")); // 空一行 arrAPI[l] = div; } } return div; }
showxml函数只需要做少许调整,改为在内循环中将数据输出到对应的div——
// 显示xml function showxml(urlPath, divdoc, xmlDoc) { if (null==divdoc) return; if (null==xmlDoc) { divdoc.innerHTML = "error!"; return; } // == main == //divdoc.innerHTML = xml_transformNode(xmlDoc, xsl); divdoc.innerHTML = "OK!"; // Parse //var sall = ""; // 所有内容 var nodes=xmlDoc.documentElement.childNodes; for(var i=0; i\n"; // 档案 for(var i3=0; i3 \n"; // 文本模式 sall += " " + surl + " \n"; // 链接模式 } } } // 加入 var div = getMyDiv(sapilevel, stag); if (null!=div) { div.innerHTML = div.innerHTML + sall; } } } } //divdoc.innerHTML = sall; }
// 初始化 function init() { // 预先执行getMyDiv,使API Level排序正确 for(var i=2; i<=14; i++) getMyDiv(i, ""); // Load main doload("http://dl.google.com/android/repository/repository-5.xml", "main"); // Load addons_list xml_loadFile("http://dl.google.com/android/repository/addons_list-1.xml", onload_addons); }
全部代码为——
Anroid SDK URL 4 Anroid SDK URL(安卓SDK地址)
addons_list-1.xml: loading...
运行效果为——
[sdkurl4.png]
完美完成!
(全文完)
源码下载——